import Vue from 'vue'
/**
 * 请求拦截
 * @param {Object} http
 */
module.exports = (vm) => {
	uni.$u.http.interceptors.request.use(
		(config) => {
			// 可使用async await 做异步操作
			// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
			const token = vm.$store.state.token || ''
			if (token) {
				config.header['Authorization'] = token
			}
			let param = {}
			if (config.params && Object.keys(config.params).length) {
				param = vm.$common.deepClone(config.params)
			} else if (config.data && Object.keys(config.data).length) {
				param = vm.$common.deepClone(config.data)
			}
			console.groupCollapsed(
				'%c参数: ↓↓↓ %c ---' + config.url,
				'color: #ff9900;font-size: 20px;font-weight: bold;line-height: 20px;',
				'color: #19be6b;font-size: 16px;font-weight: bold;line-height: 20px;'
			)
			console.log('%cJSON字符串: ↓↓↓ \n', 'color: #ff9900;font-size: 20px;font-weight: bold;', JSON
				.stringify(param))
			console.log('%cJSON数据: ↓↓↓ \n', 'color: #ff9900;font-size: 20px;font-weight: bold;', param)
			console.groupEnd()
			if (config.method == 'GET') {
				config.params = param
			} else {
				config.data = param
			}
			config.data = config.data || {}
			return config
		},
		(
			config // 可使用async await 做异步操作
		) => Promise.reject(config)
	)
}